package entities;


import java.io.Serializable;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table (name = "HERE_Remitos")
public class Remito extends EntidadBase implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "idRemito")
	private int nroRemito;
	private Date fechaEnvio;
	@Column(name = "conformidad")
	private boolean estado;
	@OneToOne
	@JoinColumn(name = "idPedido")
	private PedidoCliente pedido;
	@OneToMany (cascade = CascadeType.ALL)
	@LazyCollection(LazyCollectionOption.FALSE)
	@JoinColumn (name = "idRemito")
	private List<ItemRemito> ir;
	

	public Remito(){
		ir = new ArrayList<ItemRemito>();
	}


	public int getNroRemito() {
		return nroRemito;
	}


	public void setNroRemito(int nroRemito) {
		this.nroRemito = nroRemito;
	}


	public Date getFechaEnvio() {
		return fechaEnvio;
	}


	public void setFechaEnvio(Date fechaEnvio) {
		this.fechaEnvio = fechaEnvio;
	}


	public boolean isEstado() {
		return estado;
	}


	public void setEstado(boolean estado) {
		this.estado = estado;
	}


	public PedidoCliente getPedido() {
		return pedido;
	}


	public void setPedido(PedidoCliente pedido) {
		this.pedido = pedido;
	}


	public List<ItemRemito> getIr() {
		return ir;
	}


	public void setIr(List<ItemRemito> ir) {
		this.ir = ir;
	}
	
	
}
